home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / inet / internet-drafts / draft-ietf-dns-config-errors-00.txt < prev    next >
Text File  |  1993-08-11  |  17KB  |  435 lines

  1. INTERNET DRAFT                                            Piet Beertema
  2. Expiration Date: February 13, 1994                        CWI, Amsterdam
  3.  
  4.  
  5.         Common DNS Data File Configuration Errors
  6.  
  7. Status of this Memo
  8.  
  9. This document is an Internet-Draft.  Internet-Drafts are working
  10. documents of the Internet Engineering Task Force (IETF), its Areas, and
  11. its Working Groups.  Note that other groups may also distribute working
  12. documents as Internet-Drafts. Internet-Drafts are draft documents valid
  13. for a maximum of six months.  Internet-Drafts may be updated, replaced,
  14. or obsoleted by other documents at any time.  It is not appropriate to
  15. use Internet-Drafts as reference material or to cite them other than as
  16. a ``working draft'' or ``work in progress.''
  17.  
  18. To learn the current status of any Internet-Draft, please check the
  19. 1id-abstracts.txt listing contained in the Internet-Drafts Shadow
  20. Directories on ds.internic.net, nic.nordu.net, ftp.nisc.sri.com, or
  21. munnari.oz.au.
  22.  
  23. This document has been edited into the internet-draft format by 
  24. Anant Kumar at USC Information Sciences Institute.
  25.  
  26. This Internet Draft expires February 13, 1994.
  27.  
  28. Abstract
  29.  
  30. This memo describes errors often found in DNS data files. It points out
  31. common mistakes system administrators tend to make and why they often
  32. go unnoticed for long periods of time.
  33.  
  34. Introduction
  35.  
  36. Due to the lack of extensive documentation and automated tools, DNS
  37. zone files have mostly been configured by system administrators, by
  38. hand. Some of the rules for writing the data files are rather subtle
  39. and a few common mistakes are seen in domains worldwide.
  40.  
  41. This document is an attempt to list "surprises" that administrators
  42. might find hidden in their zone files. It describes the symptoms of the
  43. malady and prescribes medicine to cure that.
  44.  
  45.                                 [Page 1]
  46.  
  47. CWI, Amsterdam                            Beertema
  48.  
  49. 1. SOA records
  50.  
  51. A problem I've found in quite some nameservers is that the various
  52. timers have been set (far) too low. Especially for top level domain
  53. nameservers this causes unnecessary traffic over international and
  54. intercontinental links.
  55.  
  56. Unfortunately the examples given in the BIND manual, in RFC's and in
  57. some expert documents give those very short timer values, and that's
  58. most likely what people have modeled their SOA records after.
  59.  
  60. First of all a short explanation of the timers used in the SOA record:
  61.  
  62.     - Refresh: The SOA record of the primary server is checked
  63.                every "refresh" time by the secondary servers;
  64.                if it has changed, a zone transfer is done.
  65.  
  66.     - Retry: If a secondary server cannot reach the primary
  67.              server, it tries it again every "retry" time.
  68.  
  69.     - Expire: If for "expire" time the primary server cannot
  70.           be reached, all information about the zone is
  71.           invalidated on the secondary servers (i.e. they
  72.           are no longer authoritative for that zone).
  73.  
  74.     - Default TTL: The default TTL value for all records in the
  75.                zone file; a different TTL value may be given
  76.                explicitly in a record when necessary.
  77.                (This timer is named "Minimum" in most examples,
  78.                but that name is highly confusing).
  79.  
  80. For top level domain servers I would recommend the following values:
  81.  
  82.       86400 ; Refresh     24 hours
  83.        7200 ; Retry        2 hours
  84.     2592000 ; Expire      30 days
  85.      345600 ; Default TTL  4 days
  86.  
  87. For other servers I would suggest:
  88.  
  89.       28800 ; Refresh     8 hours
  90.        7200    ; Retry       2 hours
  91.      604800 ; Expire      7 days
  92.       86400 ; Default TTL 1 day
  93.  
  94. but here the frequency of changes, the required speed of propagation,
  95. the reachability of the primary server etc. play a role in optimizing
  96. the timer values.
  97.  
  98.                                 [Page 2]
  99.  
  100. CWI, Amsterdam                            Beertema
  101.  
  102. 2. Glue records
  103.  
  104. Quite often do people put unnecessary glue (A) records in their zone
  105. files. Even worse is that I've even seen *wrong* glue records for an
  106. external host in a primary zone file! Glue records need only be in a
  107. zone file if the server host is within the zone and there is no A record
  108. for that host elsewhere in the zone file.
  109.  
  110. A patch for BIND 4.8.3 issued by Andrew Partan of UUnet tackles the
  111. problem of wrong glue records entering secondary servers by masking out
  112. glue records that don't belong to the zone file being pulled in on a
  113. zone transfer. This patch has proved to be very helpful.  A patch to
  114. mask out bad information on outgoing zone transfers should also be
  115. applied, but though currently there is no recommended source for this.
  116.  
  117.  
  118. 3. "secondary server surprise"
  119.  
  120. I've seen it happen on various occasions that hosts got bombarded by
  121. nameserver requests without knowing why. On investigation it turned out
  122. then that such a host was supposed to (i.e. the information was in the
  123. root servers) run secondary for some domain (or reverse (in-addr.arpa))
  124. domain, without that host's nameserver manager having been asked or even
  125. been told so! BIND 4.9.x fixed this problem. At the same time the fix 
  126. has the disadvantage that it's far less easy to spot this problem.
  127.  
  128. Note that INTERNIC.NET accepts requests for in-addr.arpa servers WITHOUT
  129. checking if secondary servers have been set up, informed, or asked.
  130.  
  131.  
  132. 4. "MX records surprise"
  133.  
  134. In a sense similar to point 3. Sometimes nameserver managers enter MX
  135. records in their zone files that point to external hosts, without first
  136. asking or even informing the systems managers of those external hosts.
  137. This has to be fought out between the nameserver manager and the
  138. systems managers involved. Only as a last resort, if really nothing
  139. helps to get the offending records removed, can the systems manager
  140. turn to the naming authority of the domain above the offending domain
  141. to get the problem sorted out.
  142.  
  143.  
  144. 5. "Name extension surprise"
  145.  
  146. Sometimes one encounters weird names, which appear to be an external
  147. name extended with a local domain. This is caused by forgetting to
  148. terminate a name with a dot: names in zone files that don't end with a
  149. dot are always expanded with the name of the current zone (the domain
  150. that the zone file stands for or the last $ORIGIN).
  151.  
  152.                                 [Page 3]
  153.  
  154. CWI, Amsterdam                            Beertema
  155.  
  156. Example: zone file for foo.xx:
  157.  
  158.    pqr        MX 100    relay.yy.
  159.    xyz        MX 100    relay.yy           (no trailing dot!)
  160.  
  161. When fully written out this stands for:
  162.  
  163.    pqr.foo.xx.    MX 100    relay.yy.
  164.    xyz.foo.xx.    MX 100    relay.yy.foo.xx.   (name extension!)
  165.  
  166. 6. "Comment surprise"
  167.  
  168. Inserting comments or comment lines can lead to surprises, since a
  169. comment terminates the currently "active" object (domain, hostname). In
  170. this respect some DNS query tools give a bad example; consider the
  171. (slightly modified) result of this query for a SOA RR:
  172.  
  173.     @     IN  SOA   sering.cwi.nl.  hostmaster.cwi.nl. (
  174.                         1000406 ;serial
  175.                         86400   ;refresh
  176.                         14400   ;retry
  177.                         2592000 ;expire
  178.                         345600 )        ;minim
  179.  
  180. If this is taken as an example to base a (new) zone file, one is easily
  181. led to adding other records for the current ("@") object right after
  182. the SOA RR without redefining the object:
  183.  
  184.           IN  NS      sering.cwi.nl.
  185.  
  186. instead of
  187.  
  188.      @    IN  NS      sering.cwi.nl.
  189.  
  190. However, because the ";minim" comment is outside the brackets of the
  191. SOA RR, it terminates the current ("@") object, so using the first form
  192. to define NS RR's is wrong and leads to errors on (SOA) queries for the
  193. zone. In this example the DNS query tool was wrong by putting the
  194. ";minim" comment outside the SOA brackets, since in the original zone
  195. file the comment was within the brackets. However, some documents list
  196. the above output "as is" as an example for constructing zone files.
  197.  
  198.  
  199. 7. Missing secondary servers
  200.  
  201. It is required that there be a least 2 nameservers for a domain. For
  202. obvious reasons the nameservers for top level domains need to be very
  203. well reachable from all over the Internet. This implies that there must
  204. be more than just 2 of them; besides, most of the (secondary) servers
  205. should be placed at "strategic" locations, e.g. close to a point where
  206. international and/or intercontinental lines come together.
  207. To keep things manageable, there shouldn't be too many servers for a
  208. domain either.
  209.  
  210.                                 [Page 4]
  211.  
  212. CWI, Amsterdam                            Beertema
  213.  
  214. Important aspect in selecting the location of primary and secondary
  215. servers are reliability (network, host) and expedient contacts: in case
  216. of problems, changes/fixes must be carried out quickly.
  217. It should be considered logical that primary servers for European top
  218. level domains should run on a host in Europe. For each top level domain
  219. there should be 2 secondary servers in Europe and 2 in the USA (there
  220. may of course be more on either side).
  221.  
  222. EUnet has offered to run secondary server for each European top level
  223. domain on mcsun.EU.net.
  224.  
  225.  
  226. 8. Wildcard MX records
  227.  
  228. Wildcard MX records should be avoided where possible. They often cause
  229. confusion and errors: especially beginning nameserver managers tend to
  230. overlook the fact that a host/domain listed with ANY type of record in
  231. a zone file is NOT covered by an overall wildcard MX record in that
  232. zone; this goes not only for simple domain/host names, but also for
  233. names that cover one or more domains. Take the following example in
  234. zone foo.bar:
  235.  
  236.    *        MX 100    mailhost
  237.    pqr        MX 100    mailhost
  238.    abc.def    MX 100    mailhost
  239.  
  240. This makes pqr.foo.bar, def.foo.bar and abd.def.foo.bar valid domains,
  241. but the wildcard MX record covers NONE of them, nor anything below them.
  242. To cover everything by MX records, the required entries are:
  243.  
  244.    *        MX 100    mailhost
  245.    pqr        MX 100    mailhost
  246.    *.pqr    MX 100    mailhost
  247.    abc.def    MX 100    mailhost
  248.    *.def    MX 100    mailhost
  249.    *.abc.def    MX 100    mailhost
  250.  
  251. An overall wildcard MX record is almost never useful.
  252.  
  253. In particular the zone file of a top level domain should NEVER contain
  254. only an overall wildcard MX record (*.XX). The effect of such a
  255. wildcard MX record can be that mail is unnecessarily sent across
  256. possibly expensive links, only to fail at the destination or gateway
  257. that the record points to. Top level domain zone files should
  258. explicitly list at least all the officially registered primary
  259. subdomains.
  260.  
  261. Whereas overall wildcard MX records should be avoided, wildcard MX
  262. records can be acceptable as explicit part of subdomains entries,
  263. provided they are allowed under a given subdomain (to be determined by
  264. the naming authority for that domain).
  265.  
  266.                                 [Page 5]
  267.  
  268. CWI, Amsterdam                            Beertema
  269.  
  270. Example:
  271.  
  272.    foo.xx.    MX 100    gateway.xx.
  273.         MX 200    fallback.yy.
  274.    *.foo.xx.    MX 100    gateway.xx.
  275.         MX 200    fallback.yy.
  276.  
  277.  
  278. 9. Incomplete HINFO records
  279.  
  280. There appears to be a common misunderstanding that one data field
  281. (usually the second field) in HINFO records is optional. A recent scan
  282. of all reachable nameservers in only one country revealed some 300
  283. incomplete HINFO records. Specifying two data fields in a HINFO record
  284. is mandatory (RFC 1033).
  285.  
  286. 10. Safety measures & specialties
  287.  
  288. Nameservers and resolvers aren't flawless. Bogus queries should be kept
  289. from being forwarded to the root servers, since they'll only lead to
  290. unnecessary intercontinental traffic. Known bogus queries that can
  291. easily be dealt with locally are queries for 0 and broadcast addresses.
  292. To catch such queries, every nameserver should run primary for the
  293. 0.in-addr.arpa and 255.in-addr.arpa zones; the zone files need only
  294. contain a SOA and an NS record.
  295.  
  296. Also each nameserver should run primary for 0.0.127.in-addr.arpa; that
  297. zone file should contain a SOA and NS record and an entry:
  298.  
  299.    1    PTR    localhost
  300.  
  301. People maintaining zone files with the Serial number given in dotted
  302. decimal notation (e.g. when SCCS is used to maintain the files) should
  303. beware of a bug in all BIND versions: if the serial number is in
  304. Release.Version (dotted decimal) notation, then it is virtually
  305. impossible to change to a higher release: because of the wrong way that
  306. notation is turned into an integer, it results in a serial number that
  307. is LOWER than that of the former release.  It can be done, but ONLY if
  308. all secondary servers for the domain are fully restarted (nameserver
  309. killed; secondary file removed; nameserver restarted).
  310.  
  311. Very old versions of DNS resolver code also have a bug that causes
  312. queries for A records with domain names like "192.16.184.3" to go out.
  313. This happens when users type in IP addresses and the resolver code does
  314. not catch this case before sending out a DNS query. This problem has
  315. been fixed in all resolver implementations known to us but if it still
  316. pops up it is very serious because all those queries will go to the
  317. root servers looking for top level domains like "3" etc. It is strongly
  318. recommended to install BIND 4.8.3 plus all available patches or a later
  319. BIND version to get rid of this problem.
  320.  
  321. Running secondary nameserver off another secondary nameserver is not a
  322. good idea: it is known to have led to problems like bogus TTL values.
  323.  
  324.                                 [Page 6]
  325.  
  326. CWI, Amsterdam                            Beertema
  327.  
  328. This can be caused by older or flawed implementations, but secondary
  329. nameservers in principle should always transfer their zones from the
  330. official primary nameserver.
  331.  
  332. 11. Some general points
  333.  
  334. The domain name system & nameserver is a purely technical tool, not
  335. meant in any way to exert control or impose politics. The function of
  336. a naming authority is that of a clearing house. Anyone registering a
  337. subdomain under a particular (top level) domain becomes naming authority
  338. and therewith the sole responsible for that subdomain. Requests to enter
  339. MX or NS records concerning such a subdomain therefore always MUST be
  340. honored by the registrar of the next higher domain.
  341.  
  342. Examples of practices that are not allowed are:
  343.  
  344.     - imposing specific mail routing (MX records) when registering
  345.       a subdomain.
  346.  
  347.     - making registration of a subdomain dependent on to the use of
  348.       certain networks or services.
  349.  
  350. Of course there are obvious cases where a naming authority can refuse
  351. to register a particular subdomain and can require a proposed name to
  352. be changed in order to get it registered (think of DEC trying to
  353. register a domain IBM.XX).
  354.  
  355. There are also cases were one has to probe the authority of the person:
  356. sending in the application - not every systems manager should be able
  357. to register a domain name for a whole university.  The naming authority
  358. can impose certain extra rules as long as they don't violate or
  359. conflict with the rights and interest of the registrars of subdomains;
  360. a top level domain registrar may e.g. require that there be primary
  361. subdomain "ac" and "co" only and that subdomains be registered under
  362. those primary subdomains.
  363.  
  364. The naming authority can also interfere in exceptional cases like the
  365. one mentioned in point 4, e.g. by temporarily removing a domain's
  366. entry from the nameserver zone files; this of course should be done
  367. only with extreme care and only as a last resort.
  368.  
  369. When adding NS records for subdomains, top level domain nameserver
  370. managers should realize that the people setting up the nameserver for a
  371. subdomain often are rather inexperienced and can make mistakes that can
  372. easily lead to the subdomain becoming completely unreachable or that
  373. can cause unnecessary DNS traffic (see point 1). It is therefore highly
  374. recommended that, prior to entering such an NS record, the (top level)
  375. nameserver manager does a couple of sanity checks on the new nameserver
  376. (SOA record & timers OK?, MX records present where needed? No obvious
  377. errors made? Listed secondary servers operational?). Things that cannot
  378. be caught though by such checks are:
  379.  
  380.     - resolvers set up to use external hosts as nameservers
  381.  
  382.                                 [Page 7]
  383.  
  384. CWI, Amsterdam                            Beertema
  385.  
  386.     - nameservers set up to use external hosts as forwarders
  387.       without permission from those hosts.
  388.  
  389. Care should also be taken when registering 2-letter subdomains.
  390. Although this is allowed, an implication is that abbreviated addressing
  391. (see RFC 822, par. 6.2.2) is not possible in and under that subdomain.
  392. When requested to register such a domain, one should always notify the
  393. people of this consequence. As an example take the name "cs", which is
  394. commonly used for Computer Science departments: it is also the name of
  395. the top level domain for Czecho-Slovakia, so within the domain
  396. cs.foo.bar the user@host.cs is ambiguous in that in can denote both a
  397. user on the host host.cs.foo.bar and a user on the host "host" in
  398. Czecho-Slovakia.
  399.  
  400.     (This example does not take into account the recent political
  401.     changes in the mentioned country).
  402.  
  403.  
  404. Authors' Address:        Editor's Address
  405.  
  406. Piet Beertema            Anant Kumar
  407. <Piet.Beertema@cwi.nl>        <anant@isi.edu>
  408.  
  409. CWI                USC Information Sciences Institute
  410. Kruislan 413            4676 Admiralty Way
  411. NL-1098 SJ Amsterdam        Marina Del Rey CA 90292-6695
  412. The Netherlands
  413.  
  414. Phone: +31 20 592 4112        Phone:(310) 822-1511
  415. FAX:   +31 20 592 4199        FAX:  (310) 823-6714
  416.  
  417. This Internet Draft expires February 13, 1994. 
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.                                 [Page 8]
  433.  
  434.  
  435.